package logic

import (
	"errors"
	Model "hello/models"
	mysql "hello/mysql"
	pkg "hello/pkg"
)

//存放业务逻辑的代码

func SignUp(p *Model.SignUpParam) (err error) {
	//查询用户是否重复
	err = mysql.CheckUserExist(p.UserName)
	if err != nil {
		return errors.New("用户已经存在")
	}

	//2:用户UID不存在的话进行
	UserId := pkg.GenId()
	//构造一个用户实例
	u := &Model.User{
		UserId:   UserId,
		UserName: p.UserName,
		Password: p.Passwd,
	}

	//密码加密
	//保存进数据库
	return mysql.InsertUser(u)
}

func Login(p *Model.LoginParam) (token string, err error) {
	u := &Model.User{
		UserName: p.UserName,
		Password: p.Passwd,
	}

	//此时已经登录成功
	if err := mysql.Login(u); err != nil {
		return "", err
	}

	return pkg.GenerateToken(u.UserId, u.UserName)
}
